import ReactDOM from "react-dom/client";
import { Provider } from "react-redux";

import store from "./store";

import App from "./App";

// 创建 Root 容器
const root = ReactDOM.createRoot(document.querySelector("#root")!);
root.render(
  <Provider store={store}>
    <App />
  </Provider>
);

// import { produce } from "immer";

// const fn = produce((draftState, age) => {
//   console.log("draftState", draftState);
//   // console.log("rest", rest);

//   draftState.age = age;
// });

// const nextState = fn({ name: "张三" }, 10);
// console.log("nextState", nextState); // { name: '张三', age: 10 }

// console.log("ssss", fn({ name: "里斯" }, 20)); // { name: '里斯', age: 20 }

// const toggleTodo = produce((draft, id) => {
//   const todo = draft.find((todo) => todo.id === id);
//   todo.done = !todo.done;
// });

// toggleTodo({}, )

// import { produce } from "immer";

// const baseState = [
//   {
//     title: "Learn TypeScript",
//     done: true,
//   },
//   {
//     title: "Try Immer",
//     done: false,
//   },
// ];

// const newState = produce(baseState, (darft) => {
//   // ... 针对 darft 直接做操作，不用怕影响到原始的 baseState
//   console.log("darft", darft);
//   darft[1].done = true;
//   darft.push({ title: "hello", done: false });
// });

// console.log("newState", newState);
// console.log("baseState", baseState);

// 对 baseState 修改 第二项，且增加第三项，且不能改变源 baseState

// baseState[1].done = true;
// baseState.push({ title: "hello", done: false });
// console.log("baseState", baseState);

// const newState = JSON.parse(JSON.stringify(baseState));
// newState[1].done = true;
// newState.push({ title: "hello", done: false });
// console.log("newState", newState);
// console.log("baseState", baseState);

// const newState = baseState
//   .map((item, index) => {
//     if (index === 1) {
//       return {
//         ...item,
//         done: true,
//       };
//     } else {
//       return item;
//     }
//   })
//   .concat({ title: "hello", done: false });

// console.log("newState", newState);
// console.log("baseState", baseState);
